home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / a86v310a.arc / 00README.DOC next >
Text File  |  1987-09-27  |  13KB  |  297 lines

  1. A86 assembler package   V3.10           September 27, 1987
  2. The entire package is Copyright (C)1986-1987 Eric Isaacson.
  3. All rights reserved.
  4.  
  5. For easier bulletin-board distribution, I have split this package
  6. into three ARC files, A86V310A.ARC, A86V310B.ARC, and
  7. A86V310C.ARC.  The first file contains enough to get you started;
  8. you can evaluate the package and then download the second and
  9. third files later on.
  10.  
  11. PLEASE read Chapter 1 for legal terms and conditions, how to
  12. register for the package, and the overview of the assembler.
  13.  
  14.  
  15. QUESTION: "I bought this assembler from XYZ Software House, that
  16.   advertised great software for $5 per disk.  What's going on
  17.   here?  Have I already bought an assembler, or what?"
  18.  
  19. ANSWER: Well, no, not exactly.  You've bought a disk that has
  20.   great software on it; you haven't bought the software yet.
  21.   A86, like the vast majority of software offered by the $5-per-
  22.   disk distribution houses, is free-distribution software (also
  23.   known as "shareware", or "user-supported software").  That
  24.   means I retain the right to A86, but I choose to let people
  25.   pass it around.  I have no business relationship with any
  26.   distribution houses in the U.S.; I don't get a penny of the $5 
  27.   (or whatever) you paid them for the disk containing A86.  So I 
  28.   need and expect to be paid by you, because I'm trying to make a 
  29.   living out of making and supporting shareware products. 
  30.  
  31.   Many distribution houses do a pretty poor job of revealing the
  32.   shareware nature of the software they sell.  If you thought you
  33.   had purchased the software free and clear, you might feel
  34.   justified in being angry with them for having misled you.  And
  35.   you might look around for houses that do a better job of
  36.   informing the public.  But I hope you'll take the time to
  37.   consider everybody's role in the shareware marketing scene; if
  38.   you do, I think you'll conclude that although you may have
  39.   been misled, you haven't really been cheated out of anything.
  40.  
  41.   Shareware is great for authors like me, who have spent all
  42.   their years in their computer holes, learning to be great
  43.   programmers, and no time in business school learning marketing
  44.   and distribution techniques.  We simply cast our programs to
  45.   the winds.  They are distributed at practically no cost to
  46.   us.  That's why we can charge a lot less than the cost of
  47.   "commercial" software.
  48.  
  49.   Shareware is also great for customers like you.  You can try
  50.   out the software before paying for it.  You'll know that a
  51.   successful shareware product is good, because only satisfied
  52.   customers pay for it.  The existence of shareware infuses
  53.   healthy competition in the entire software market, for both
  54.   price and quality.  In the case of A86, I'm utterly convinced
  55.   that you'll never find a better value for an assembler,
  56.   anywhere.
  57.                                                         0-2
  58.   Finally, let's consider the distribution houses.  They provide
  59.   a legitimate service, for which they charge a reasonable price.
  60.   The best houses act as librarians, evaluating and cataloguing
  61.   software.  Most pay thousands of dollars for advertising.
  62.   Their cut is far less than the distributor's cut for
  63.   "commercial" software (they prosper because their volume is
  64.   bigger).  Most customers for the distribution houses are repeat
  65.   customers, who are aware of, and happy with, what they are
  66.   getting.  If it weren't for your XYZ House, you might never
  67.   have heard of A86, or might never have figured out where to
  68.   obtain it.
  69.  
  70.   So I hope you'll be happy with shareware, and actively desire
  71.   to support it.  You'll feel good about promoting a healthy
  72.   situation for everybody.  And you'll encourage the best
  73.   programmers in the world to keep writing for you, instead of
  74.   for the big corporations.
  75.  
  76.  
  77. Now that I've said that, let's move on to the package.   The A86
  78. package consists of the four programs A86.COM, XREF.COM,
  79. EXMAC.COM, and FAKE.EXE; a collection of source, batch, and
  80. library files used by the demonstration contained in Chapter 2,
  81. and a sequence of DOC files that, when printed out in order, make
  82. the manual.  Each chapter is a DOC file whose name starts with 2
  83. digits indicating the chapter number.  The files are:
  84.  
  85. 00README.DOC  (this file)     09DIRC.DOC
  86. 01INTRO.DOC                   10RELOC.DOC
  87. 02DEMO.DOC                    11MACRO.DOC
  88. 03OPREQ.DOC                   12COMPAT.DOC
  89. 04ELEM.DOC                    13TOOLS.DOC
  90. 05EXCLUS.DOC                  14ERRS.DOC
  91. 06INSTR.DOC                   15HIST.DOC
  92. 07FLOAT.DOC                   16RESERV.DOC
  93. 08EXPR.DOC                    17INDEX.DOC
  94.  
  95.                                                         0-3
  96. TABLE OF CONTENTS
  97.  
  98.  
  99. CHAPTER 1   INTRODUCTION AND LEGAL TERMS
  100.  
  101.   Introduction                             1-1
  102.   Legal Terms and Conditions               1-1
  103.   Overview of A86                          1-3
  104.   Who IS That Guy?                         1-5
  105.   Support Your Local Bulletin Board        1-5
  106.   How to Get in Touch With Me              1-5
  107.  
  108.  
  109. CHAPTER 2   A86 DEMONSTRATION
  110.  
  111.   Demonstration of A86 and Associated Tools                 2-1
  112.   Assembling a Very Short Program: PAGE.COM                 2-1
  113.   Demonstration of Error-Reporting                          2-1
  114.   Assembling a Longer Program with Library Files: REV.COM   2-2
  115.   Using XREF on a medium-sized program: TCOLS.COM           2-2
  116.   Using EXMAC                                               2-3
  117.  
  118.  
  119. CHAPTER 3   OPERATION AND REQUIREMENTS
  120.  
  121.   A86 Program Invocation                    3-1
  122.   Assembler Switches                        3-2
  123.   The A86 Environment Variable              3-3
  124.   Using Standard Input as a Command Tail    3-4
  125.   Strategies for Source File Maintenance    3-4
  126.   System Requirements for A86               3-5
  127.  
  128.  
  129. CHAPTER 4   ELEMENTS OF THE A86 LANGUAGE
  130.  
  131.   The A86 Language and the A86 Program               4-1
  132.   General Categories of A86 Elements                 4-1
  133.   Operand Typing and Code Generation                 4-3
  134.   Registers                                          4-3
  135.   Variables                                          4-3
  136.   Labels                                             4-4
  137.   Constants                                          4-4
  138.   Generating Opcodes from General Purpose Mnemonics  4-4
  139.  
  140.  
  141. CHAPTER 5   SOME EXCLUSIVE FEATURES OF A86
  142.  
  143.   The IF Statement                               5-1
  144.   Multiple operands to PUSH, POP, INC, DEC       5-1
  145.   Conditional Return Instructions                5-2
  146.   A86 extensions to the MOV instruction          5-2
  147.   Local Labels                                   5-2
  148.   Operands to AAM and AAD Instructions           5-3
  149.                                                            0-4
  150. CHAPTER 6    THE 86 INSTRUCTION SET
  151.  
  152.   Effective Addresses                            6-1
  153.   Segmentation and Effective Addresses           6-2
  154.   Effective Use of Effective Addresses           6-3
  155.   Encoding of Effective Addresses                6-4
  156.   Table of Effective Address byte values         6-5
  157.   How to Read the Instruction Set Chart          6-6
  158.   The Instruction Set Chart                      6-7
  159.  
  160.  
  161. CHAPTER 7   THE FLOATING-POINT PROCESSOR
  162.  
  163.   The 8087 and 287 Coprocessors          7-1
  164.   Emulating the 8087 by Software         7-2
  165.   The Floating Point Stack               7-3
  166.   Floating Point Initializations         7-3
  167.   Built-In Constant Names                7-3
  168.   Special Immediate FLD Form             7-4
  169.   Floating Point Operand Types           7-4
  170.   Operand Choices in A86                 7-5
  171.   The 87 Instruction Set                 7-5
  172.  
  173.  
  174. CHAPTER 8   NUMBERS AND EXPRESSIONS
  175.  
  176.   Numbers and Bases                      8-1
  177.   The RADIX Directive                    8-2
  178.   Special Defaults for DT Numbers        8-2
  179.   Floating-point Initializations         8-3
  180.   Overview of Expressions                8-3
  181.   Types of Expression Operands           8-4
  182.   Numbers and Label Addresses            8-4
  183.   Variables                              8-4
  184.   Index Expressions                      8-4
  185.   Arithmetic Operators                   8-4
  186.   HIGH/LOW                               8-4
  187.   BY                                     8-5
  188.   Addition (combination)                 8-5
  189.   Subtraction                            8-6
  190.   Multiplication and Division            8-6
  191.   Shifting Operators                     8-6
  192.   Logical Operators                      8-7
  193.   Relational Operators                   8-7
  194.   Attribute Operators/Specifiers         8-8
  195.   SHORT and LONG operators               8-8
  196.   OFFSET operator                        8-9
  197.   NEAR Operator                          8-9
  198.   Square Brackets Operator              8-10
  199.   Colon Operator                        8-10
  200.   ST Operator                           8-11
  201.   TYPE Operator                         8-11
  202.   THIS and $ Specifiers                 8-11
  203.   Operator Precedence                   8-12
  204.                                                          0-5
  205. CHAPTER 9   DIRECTIVES IN A86
  206.  
  207.   Segments in A86                                 9-1
  208.   CODE ENDS and DATA ENDS Statements              9-2
  209.   The ORG Directive                               9-2
  210.   The EVEN Directive                              9-3
  211.   Data Allocation Using DB, DW, DD, DQ, and DT    9-3
  212.   The STRUC Directive                             9-6
  213.   Forward References                              9-6
  214.   Forward References in Expressions               9-7
  215.   The EQU Directive                               9-8
  216.   Equates to Built-In Symbols                     9-9
  217.   The NIL Prefix                                  9-9
  218.   Interrupt Equates                               9-9
  219.   Duplicate Definitions                          9-10
  220.   The PROC Directive                             9-11
  221.   The ENDP Directive                             9-11
  222.   The LABEL Directive                            9-12
  223.  
  224.  
  225. CHAPTER 10   RELOCATION AND LINKAGE
  226.  
  227.   .OBJ Production Made Easy                          10-1
  228.   Overview of Relocation and Linkage                 10-2
  229.   The NAME Directive                                 10-5
  230.   The PUBLIC Directive                               10-5
  231.   The EXTRN Directive                                10-6
  232.   MAIN: The Starting Location for a Program          10-7
  233.   The END Directive                                  10-7
  234.   The SEGMENT Directive                              10-8
  235.   DATA SEGMENT, STRUC and CODE SEGMENT Directives   10-11
  236.   The ENDS Directive                                10-11
  237.   Default Outer SEGMENT                             10-11
  238.   The GROUP Directive                               10-12
  239.  
  240.  
  241. CHAPTER 11   MACROS AND CONDITIONAL ASSEMBLY
  242.  
  243.   Macro Facility                                     11-1
  244.   Simple Macro Syntax                                11-1
  245.   Formatting in macro definitions and calls          11-2
  246.   Macro operand substitution                         11-2
  247.   Quoted-string operands                             11-3
  248.   Looping by operands in macros                      11-4
  249.   The #L last operator and indefinite repeats        11-5
  250.   Character-loops                                    11-5
  251.   The "B"-before and "A"-after operators             11-6
  252.   Multiple-increments within loops                   11-6
  253.   Negative R-loops                                   11-7
  254.   Nesting of loops in macros                         11-7
  255.   Implied closing of loops                           11-8
  256.   Local labels in macros                             11-8
  257.   Debugging macro expansions                         11-9
  258.                                                             0-6
  259.   Conditional Assembly                              11-10
  260.   Conditional Assembly and Macros                   11-11
  261.   Conditional Assembly and the XREF Program         11-12
  262.   Declaring Variables in the Assembler Invocation   11-13
  263.   Null Invocation Variable Names                    11-13
  264.   Changing Values of Invocation Variables           11-14
  265.  
  266.  
  267. CHAPTER 12   COMPATIBILITY WITH OTHER ASSEMBLERS
  268.  
  269.   Conversion of Intel/IBM/MSDOS programs to A86     12-1
  270.   Compatibility-symbols recognized by A86           12-3
  271.   Conversion of A86 Programs to Intel/IBM/MSDOS     12-3
  272.  
  273.  
  274. CHAPTER 13   ASSOCIATED TOOLS
  275.  
  276.   XREF Cross-reference and Symbol Listing Facility    13-1
  277.   EXMAC Macro Expansion Tool                          13-3
  278.   A86LIB Source File Library Tool                     13-4
  279.   Environment Variable A86LIB                         13-4
  280.   Forcing a Library Search                            13-4
  281.   Listings with A86                                   13-5
  282.   Mimicking Tool: FAKE.EXE                            13-6
  283.  
  284.  
  285. CHAPTER 14   DESCRIPTIONS OF A86 ERROR MESSAGES
  286.  
  287.  
  288. CHAPTER 15   RELEASE HISTORY OF A86
  289.  
  290.  
  291. CHAPTER 16    RESERVED SYMBOLS IN THE A86 LANGUAGE
  292.  
  293.  
  294. INDEX
  295.  
  296.  
  297.